<?php
/**
 * Плагин для генерации тумбов картинок.
 *
 * {{!thumb '<image_path>' [Thumb params]}}
 *
 * {{!thumb '/full/path/to/image.jpg' filter='scale' w=100}}
 */

$file_source = isset($params['src']) ? $params['src'] : $params[0];
// получить ссылку на оригинал
$file_cached = $tpl->tpl_data_dir.'thumbs/'.md5($tpl->base_cache_name . $file_source . serialize($params));

if (@filemtime($file_source) > @filemtime($file_cached)) { // версия в кеше устарела.
	// обновляем миниатюру.

	// 2008-06-09 : lucky
	// создание миниатюр для картинок требует много памяти. сейчас всю память
	// сожрал скрипт, рендерящий шаблон, и для нас её совсем не осталось.
	//
	// картинка все равно отдается отдельным запросом, поэтому план такой:
	//
	//  * вместо миниатюры сохраняем PHP скрипт, который может её создать, в ту же
	//    дирикторию, с тем же именем, и расширением *.php.
	//  * когда сервер получит запрос на миниатюру, то не найдя таковой он вызовет наш скрипт.
	//  * скрипт создаст миниатюру, сохранит в файл, отдаст пользователю и убёт
	//    сам себя апстену.

	// удалим старую миниатюру, если была.
	@unlink($file_cached);

	// пишем скрипт, создающий миниатюры.
	$thumb_params = $params;
	$source = "
	ini_set('include_path', '".ini_get('include_path')."');
	\$file_source = '".$file_source."';
	\$file_cached = '".$file_cached."';
	\$thumb_params = ".var_export($thumb_params, true).";

	require_once 'thumb/thumb.php';
	\$thumb_engine = new Thumb();
	\$thumb = \$thumb_engine->convert(\$thumb_engine->imageFromFile(\$file_source), \$thumb_params);
	require_once 'includes/debug.php';
	debug('thumb: write thumb to '.\$file_cached);
	\$thumb_engine->imageToFile(\$thumb, \$file_cached);
	@chmod (\$file_cached, {$tpl->static_file_mode});
	readfile (\$file_cached);
	@unlink(__FILE__);
	";
	$file_cached_php = "$file_cached.php";
	$source = '<'.'?php '.$source.' ?'.'>';
	$tpl->putScript($file_cached_php, $source);
}

// вернуть ссылку на файл в кеше
return $tpl->tpl_base_path.substr($file_cached, strlen($tpl->tpl_base_dir));

?>
